import java.lang.reflect.Method;

import org.fromsko.emp.Emp;
import org.fromsko.emp.EmpController;
import org.fromsko.emp.EmpDao;
import org.fromsko.emp.EmpServiceImpl;
import org.fromsko.emp.IEmpDao;
import org.fromsko.emp.IEmpService;

public class EmpLayerTest {
    public static void main(String[] args) throws Exception {
        // 1. 创建Dao对象
        IEmpDao empDao = new EmpDao();
        // 2. 创建Service对象，并用反射set注入Dao
        EmpServiceImpl empService = new EmpServiceImpl();
        Method setDao = EmpServiceImpl.class.getMethod("setEmpDao", IEmpDao.class);
        setDao.invoke(empService, empDao);
        // 3. 创建Controller对象，并用反射set注入Service
        EmpController controller = new EmpController();
        Method setService = EmpController.class.getMethod("setEmpService", IEmpService.class);
        setService.invoke(controller, empService);
        // 4. 测试调用
        Emp emp = new Emp(1, "张三");
        controller.saveEmp(emp);
    }
}
